/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 26727
 * Date: 2024-06-18
 * Time: 9:26
 */
//1.path 做参数传进去
class Solution10 {
    int count;
    int aim;
    public int findTargetSumWays(int[] nums, int target) {
        aim = target;
        dfs(nums,0,0);
        return count;
    }

    void dfs(int[] nums,int pos, int path) {
        if(pos == nums.length) {
            if(path == aim) {
                count++;
            }
            return;
        }
        //+
        dfs(nums,pos+1,path+nums[pos]);

        //-
        dfs(nums,pos+1,path-nums[pos]);

    }
}
//2.path做全局变量
//class Solution {
//    int path;
//    int count;
//    int aim;
//    public int findTargetSumWays(int[] nums, int target) {
//        aim = target;
//        dfs(nums,0);
//        return count;
//    }
//
//    void dfs(int[] nums,int pos) {
//        if(pos == nums.length) {
//            if(path == aim) {
//                count++;
//            }
//            return;
//        }
//        //+
//        path += nums[pos];
//        dfs(nums,pos+1);
//        //回溯
//        path -= nums[pos];
//        //-
//        path -= nums[pos];
//        dfs(nums,pos+1);
//        //回溯
//        path += nums[pos];
//
//    }
//}